package org.giovanolli.mumi.controller.business;

import java.io.Serializable;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

import org.giovanolli.mumi.entities.AttentionTimePeriodType;

/**
 * The Class AttentionTimePeriodModel.
 */
public class AttentionTimePeriodModel implements Serializable {

	/** The Constant serialVersionUID. */
	private static final long serialVersionUID = 8879853861710105860L;

	/** The start date. */
	private Date startDate;

	/** The end date. */
	private Date endDate;

	/** The hour. */
	private Integer hour;

	/** The minute. */
	private Integer minute;

	/** The selectable days. */
	private List<String> selectableDays;

	/** The days. */
	private List<Integer> days;

	private AttentionTimePeriodType attentionTimePeriodType;

	public AttentionTimePeriodType getAttentionTimePeriodType() {
		return attentionTimePeriodType;
	}

	public List<AttentionTimePeriodType> getAttentionTimePeriodTypes() {
		return Arrays.asList(AttentionTimePeriodType.values());
	}

	/**
	 * Gets the days.
	 * 
	 * @return the days
	 */
	public List<Integer> getDays() {
		return days;
	}

	/**
	 * Gets the end date.
	 * 
	 * @return the end date
	 */
	public Date getEndDate() {
		return endDate;
	}

	/**
	 * Gets the hour.
	 * 
	 * @return the hour
	 */
	public Integer getHour() {
		return hour;
	}

	/**
	 * Gets the minute.
	 * 
	 * @return the minute
	 */
	public Integer getMinute() {
		return minute;
	}

	/**
	 * Gets the selectable days.
	 * 
	 * @return the selectable days
	 */
	public List<String> getSelectableDays() {
		return selectableDays;
	}

	/**
	 * Gets the start date.
	 * 
	 * @return the start date
	 */
	public Date getStartDate() {
		return startDate;
	}

	public void setAttentionTimePeriodType(AttentionTimePeriodType attentionTimePeriodType) {
		this.attentionTimePeriodType = attentionTimePeriodType;
	}

	/**
	 * Sets the days.
	 * 
	 * @param days
	 *            the new days
	 */
	public void setDays(List<Integer> days) {
		this.days = days;
	}

	/**
	 * Sets the end date.
	 * 
	 * @param endDate
	 *            the new end date
	 */
	public void setEndDate(Date endDate) {
		this.endDate = endDate;
	}

	/**
	 * Sets the hour.
	 * 
	 * @param hour
	 *            the new hour
	 */
	public void setHour(Integer hour) {
		this.hour = hour;
	}

	/**
	 * Sets the minute.
	 * 
	 * @param minute
	 *            the new minute
	 */
	public void setMinute(Integer minute) {
		this.minute = minute;
	}

	/**
	 * Sets the selectable days.
	 * 
	 * @param selectableDays
	 *            the new selectable days
	 */
	public void setSelectableDays(List<String> selectableDays) {
		this.selectableDays = selectableDays;
	}

	/**
	 * Sets the start date.
	 * 
	 * @param startDate
	 *            the new start date
	 */
	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}

}
